﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Castle.ActiveRecord;
using System.Collections;

namespace ServiceGerenciador.Model
{
    [Serializable]
    [ActiveRecord("funcionarios")]
    public class Funcionario : ActiveRecordBase<Funcionario>
    {
        //private IList funci = new ArrayList();//aqui
        public Funcionario()
        {

        }

        [PrimaryKey("Id")]
        public int Id { get; set; }

        [BelongsTo("IdPessoa")] //pertence a (coloca o id da tabelaque vai pegar)hasmeny (tem muitos)
        public Person Pessoa { get; set; }

        [Property]
        public DateTime dataAdmissao { get; set; }

        [Property]
        public DateTime? dataDemissao { get; set; }

        [Property]
        public Decimal comissao { get; set; }

        [Property]
        public DateTime horarioini { get; set; }

        [Property]
        public DateTime horariofim { get; set; }

        [Property]
        public DateTime horarioini2 { get; set; }

        [Property]
        public DateTime horariofim2 { get; set; }

        public string Nome
        {
            get
            {
                if (this.Pessoa != null)
                    return this.Pessoa.Nome;
                else
                    return string.Empty;
            }
        }

        public string CPF
        {
            get
            {
                if (this.Pessoa != null)
                    return this.Pessoa.CPF;
                else
                    return string.Empty;
            }
        }

        public static Funcionario[] Pesquisa(string termo)
        {
            var funcionario = FindAll();
            return funcionario.Where((f) => f.Pessoa.Nome.ToUpper().Contains(termo.ToUpper())).ToArray();
            //return FindAllByProperty("funcionarios", termo);//campo databela e nãoa tabela

        }

        //[HasAndBelongsToMany(typeof(Service),
        //    Table = "funcionarioServicos", ColumnKey = "Id", ColumnRef = "IdPessoa")]
        //public IList funci
        //{
        //    get; set;
        //}
    }
}